#ifndef _PLAYER
#define _PLAYER
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>

#include "spaceShip.h"
#include "factory.h"

#define MAX_NUMBER_SHIP 50

typedef struct{
    char name[30];

    spaceShip* spaceShiplist[MAX_NUMBER_SHIP];
    spaceShip* controlledSpaceShip;

	int	credits,
        onMission, /* booleen 0 si en mission 1 sinon */
        numSectorMission,
		reputation[10],
		nbOwnedSpaceShip;
}player;

void initPlayer(player* p);/*initialise le joueur(texte)*/

void SDL_InitPlayer(SDL_Surface* screen, TTF_Font* font, player* p);/*initialiste le joueur (SDL)*/

void showPlayerInfo(player p);/*affiche les informations du joueur(texte)*/

void SDL_showPlayerInfo(SDL_Surface* screen, TTF_Font* font, player* p);/*affiche les informations du joueur (SDL)*/

void addSpaceShipPlayer(player* p, spaceShip* s);/*ajoute le vaisseau s au joueur p*/

void changeSpaceShip(player *p, spaceShip* s);/*effectue un changement de vaisseau*/

void buyFreight(player* p, freight* frght);/*ajoute/achète du freight*/

void sellFreight(player* p, freight* frght, factory fcty);/*vend du freight*/

int SDL_SelectTask(SDL_Surface* screen, TTF_Font* font, player* p);/*affiche le menu de selection des tâches pour permettre leur selection*/

void SDL_Mission(SDL_Surface* screen, TTF_Font* font, player* p);/*affiche les missions disponibles pour permettre leur selection*/

void SDL_Trade(SDL_Surface* screen, TTF_Font* font, player* p, factory* fcty);/*affiche l'écran de marchandage*/

void SDL_Buy(SDL_Surface* screen, TTF_Font* font, player* p, factory* fcty);/*affiche l'écran d'achat*/

void SDL_BuySpaceShip(SDL_Surface* screen, TTF_Font* font, player* p, factory* fcty);/*effectue l'achat d'un vaisseau*/

void SDL_Sell(SDL_Surface* screen, TTF_Font* font, player* p, factory* fcty);/*effectue la vente d'un vaisseau*/

void tradeWithFactory(player* p, spaceShip* s, factory* f);/*affiche le menu de marchandage avec les usines*/

void freeSpaceShipPlayer(player* p);/*free les vaisseaux du joueur*/

void playerMove(player* p);/*effectue les mouvements du joueur*/

void SDL_OnAllyClick(player* p, spaceShip* s, SDL_Surface* screen, TTF_Font* font);/*gère les actions si l'on clique sur un vaisseau allié*/

void orderAlly(player* p, SDL_Surface* screen, TTF_Font* font);/*permet de donner des ordres aux vaisseaux alliés (non fonctionnel)*/


#endif
